//package pers.cjr.demo.mqtt;
//
//import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
//import org.eclipse.paho.client.mqttv3.MqttCallback;
//import org.eclipse.paho.client.mqttv3.MqttClient;
//import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
//import org.eclipse.paho.client.mqttv3.MqttException;
//import org.eclipse.paho.client.mqttv3.MqttMessage;
//import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
//
///**
// * 发布端
// */
//public class PublishSample {
//
//    public static void main(String[] args) {
//
//        String topic = "test2";
//        String content = "hello 哈哈";
//        int qos = 1;
//        String broker = "tcp://u042f0c1.cn-shenzhen.emqx.cloud:11482";
//        String clientId = "pubClient";
//        String userName = "jiuruic";
//        String passWord = "cjr12345678";
//        // 内存存储
//        MemoryPersistence persistence = new MemoryPersistence();
//
//        try {
//            // 创建客户端
//            MqttClient client = new MqttClient(broker, clientId, persistence);
//            // 创建链接参数
//            MqttConnectOptions connOpts = new MqttConnectOptions();
//            // 在重新启动和重新连接时记住状态
//            connOpts.setCleanSession(false);
//            // 设置连接的用户名
//            connOpts.setUserName(userName);
//            connOpts.setPassword(passWord.toCharArray());
//            // 建立连接
//            System.out.println("连接到 broker: " + broker);
//            client.connect(connOpts);
//            System.out.println("连接成功.");
//            // 创建消息
//            MqttMessage message = new MqttMessage(content.getBytes());
//            // 设置消息的服务质量
//            message.setQos(qos);
//            // 设置回调函数
//            client.setCallback(new MqttCallback() {
//
//                /**
//                 * mqtt连接丢失时触发（不包括主动disconnect）
//                 */
//                public void connectionLost(Throwable cause) {
//                    System.out.println("connectionLost");
//                }
//
//                /**
//                 * 收到订阅消息后调用
//                 */
//                public void messageArrived(String topic, MqttMessage message) {
//                    System.out.println("======监听到来自[" + topic + "]的消息======");
//                    System.out.println("message content:" + new String(message.getPayload()));
//                    System.out.println("============");
//                }
//
//                /**
//                 * 发布消息完成后调用
//                 */
//                public void deliveryComplete(IMqttDeliveryToken token) {
//                    System.out.println("deliveryComplete---------" + token.isComplete());
//                }
//            });
//            // 发布消息
//            System.out.println("向" + topic + "发送消息:" + message);
//            client.publish(topic, message);
////            // 断开连接
////            client.disconnect();
////            // 关闭客户端
////            client.close();
//        } catch (MqttException me) {
//            System.out.println("reason " + me.getReasonCode());
//            System.out.println("msg " + me.getMessage());
//            System.out.println("loc " + me.getLocalizedMessage());
//            System.out.println("cause " + me.getCause());
//            System.out.println("excep " + me);
//            me.printStackTrace();
//        }
//    }
//}